package com.atguigu.guli.service.edu;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import feign.Feign;
import feign.Logger;
import feign.Retryer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;


//springboot启动类默认扫描自己所在的包以及子包下的组件
@EnableFeignClients  // 扫描 feign客户端
@SpringBootApplication
@EnableDiscoveryClient
@EnableTransactionManagement //启用声明式事务
//需要指定扫描自己和service-base中的组件
@ComponentScan(basePackages = "com.atguigu.guli.service")
public class ServiceEduApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceEduApplication.class , args);
    }

//    @Bean
//    public IRule irule(){
//        return new RandomRule();
//    }
    //重试配置
//    @Bean
//    public Retryer retryer(){
////        return Retryer.NEVER_RETRY;//当前版本的默认：不重试
//        return new Retryer.Default(); //重试5次的配置
//    }
    //openfeign日志配置
    @Bean
    public Logger.Level level(){
//        return Logger.Level.HEADERS;//只输出头
        return Logger.Level.FULL;// 全部输出
        //feign使用了 slf4j+logback输出的日志，日志级别为debug级别
        //我们项目配置的日志级别为info
        //我们希望指定 OssFeignClient可以输出debug以上级别的日志
    }
}
